--- mojo/public/c/system/macros.h.orig	2014-09-03 14:48:42.963665035 +0000
+++ mojo/public/c/system/macros.h	2014-09-03 14:49:12.180255593 +0000
@@ -76,7 +76,8 @@
 // Unlike the C++11 |alignas()|, |alignment| must be an integer. It may not be a
 // type, nor can it be an expression like |MOJO_ALIGNOF(type)| (due to the
 // non-C++11 MSVS version).
-#if __cplusplus >= 201103L
+#if __cplusplus >= 201103L && \
+	(defined(__clang__) || (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 >= 40800))
 #define MOJO_ALIGNAS(alignment) alignas(alignment)
 #elif defined(__GNUC__)
 #define MOJO_ALIGNAS(alignment) __attribute__((aligned(alignment)))
 
